<template>
  <div class="login-wrap">
    <div class="ms-login">
      <div class="ms-title">每日健康登记管理系统</div>
      <el-card>
        <el-form
          :model="param"
          :rules="rules"
          ref="login"
          label-width="0px"
          class="ms-content"
        >
          <el-form-item prop="id">
            <el-input v-model="param.id" placeholder="username">
              <el-button slot="prepend" icon="el-icon-lx-people"></el-button>
            </el-input>
          </el-form-item>
          <el-form-item prop="password">
            <el-input
              type="password"
              placeholder="password"
              v-model="param.password"
              @keyup.enter.native="submitForm()"
            >
              <el-button slot="prepend" icon="el-icon-lx-lock"></el-button>
            </el-input>
          </el-form-item>
          <el-form-item>
            <el-radio v-model="radio" label="1">管理员</el-radio>
            <el-radio v-model="radio" label="2">用户</el-radio>
          </el-form-item>
          <div class="login-btn">
            <el-button type="primary" @click="submitForm()">登录</el-button>
          </div>
        </el-form>
      </el-card>
    </div>
  </div>
</template>

<script>
import test from "@/api/index";
export default {
  data() {
    var checkid = (rule, value, callback) => {
      if (!value) {
        return callback(new Error("用户名不能为空"));
      } else if (isNaN(value)) {
        return callback(new Error("id只能为数字"));
      } else return callback();
    };
    var checkpassword = (rule, value, callback) => {
      if (!value) {
        return callback(new Error("密码不能为空"));
      } else return callback();
    };
    return {
      param: {
        id: "",
        password: "",
      },
      radio: "2",
      rules: {
        id: [{ validator: checkid, trigger: "blur" }],
        password: [{ validator: checkpassword, trigger: "blur" }],
      },
    };
  },
  methods: {
    submitForm() {
      this.$refs.login.validate((valid) => {
        if (valid) {
          if (this.radio === "2") {
            if (this.param.id.length >= 20) {
              this.$message.error("账号最长为20位整数!");
            } else {
              test.UserLogin(this.param.id).then((response) => {
                if (response.status === 200) {
                  console.log(response.data);
                  if (this.param.password === response.data.upwd) {
                    if (response.data.userOn === "启用") {
                      this.$message.success("登录成功");
                      localStorage.setItem("id", this.param.id);
                      localStorage.setItem("role", "user");
                      this.$router.push("/UserPage");
                    }
                  } else {
                    this.$message.error("密码错误");
                    return false;
                  }
                } else {
                  this.$message.error("密码错误");
                  return false;
                }
              });
            }
          } else {
            if (this.param.id.length >= 20) {
              this.$message.error("账号最长为20位整数!");
            } else {
              test.AdminLogin(this.param.id).then((response) => {
                if (response.status === 200) {
                  console.log(response.data);
                  if (this.param.password === response.data) {
                    this.$message.success("登录成功");
                    localStorage.setItem("id", this.param.id);
                    localStorage.setItem("role", "admin");
                    this.$router.push("/AdminPage");
                  }
                } else {
                  this.$message.error("密码错误");
                  return false;
                }
              });
            }
          }
        } else {
          this.$message.error("请正确输入账号和密码");
          return false;
        }
      });
    },
  },
};
</script>

<style scoped>
.login-wrap {
  position: relative;
  width: 100%;
  height: 100%;

  background-size: 100%;
}
.ms-title {
  width: 100%;
  line-height: 50px;
  text-align: center;
  font-size: 20px;
  color: #fff;
  border-bottom: 1px solid #ddd;
}
.ms-login {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 350px;
  margin: 0px 0 0 -175px;
  border-radius: 5px;
  background: rgba(23, 110, 240, 0.3);
  overflow: hidden;
}
.ms-content {
  padding: 30px 30px;
}
.login-btn {
  text-align: center;
}
.login-btn button {
  width: 100%;
  height: 36px;
  margin-bottom: 10px;
}
.login-tips {
  font-size: 12px;
  line-height: 30px;
  color: #fff;
}
</style>